From: This, that and the other Date: Sun, 29 Mar 2015 09:30:15 +0000 (+1100) Subject: Add null check in WikiImporter X-Git-Tag: 1.31.0-rc.0~11933 X-Git-Url: http://git.cyclocoop.org//%22http:/%22.attribut_html%28%24lesurls%5B%24numero%5D%29.%22/%22?a=commitdiff_plain;h=45788085afaa7be7b606c08ccc3cba06d224496b;p=lhc%2Fweb%2Fwiklou.git Add null check in WikiImporter This is my code, and it caused fatals in production whenever anyone tried to import anything :( This should get rid of the fatals, but obviously this won't fix the underlying issue of WikiPage::getContent() sometimes returning null. See the task for more info on that issue. Bug: T94325 Change-Id: I68ce2288d7d209733bceffe42e1876c7afcd73d3 --- diff --git a/includes/Import.php b/includes/Import.php index de453b5a5f..06355ed11c 100644 --- a/includes/Import.php +++ b/includes/Import.php @@ -375,14 +375,19 @@ class WikiImporter { $page = WikiPage::factory( $title ); $page->loadPageData( 'fromdbmaster' ); $content = $page->getContent(); - $editInfo = $page->prepareContentForEdit( $content ); - $countKey = 'title_' . $title->getPrefixedText(); - $countable = $page->isCountable( $editInfo ); - if ( array_key_exists( $countKey, $this->countableCache ) && - $countable != $this->countableCache[ $countKey ] ) { - DeferredUpdates::addUpdate( SiteStatsUpdate::factory( array( - 'articles' => ( (int)$countable - (int)$this->countableCache[ $countKey ] ) - ) ) ); + if ( $content === null ) { + wfDebug( __METHOD__ . ': Skipping article count adjustment for ' . $title . + ' because WikiPage::getContent() returned null' ); + } else { + $editInfo = $page->prepareContentForEdit( $content ); + $countKey = 'title_' . $title->getPrefixedText(); + $countable = $page->isCountable( $editInfo ); + if ( array_key_exists( $countKey, $this->countableCache ) && + $countable != $this->countableCache[ $countKey ] ) { + DeferredUpdates::addUpdate( SiteStatsUpdate::factory( array( + 'articles' => ( (int)$countable - (int)$this->countableCache[ $countKey ] ) + ) ) ); + } } $args = func_get_args();